package enumdemo;

/**
 * Java当中的枚举类型非常特殊 都是默认继承于 Java原生的Enum类
 */
public enum TestEnum {
    //枚举对象
    RED(0,"RED"),
    WHITE(1,"WHITE"),
    GREEN(2,"GREEN");

    public String color;
    public int ordinal;

    //当自己写了一个构造方法之后，默认的构造方法就没有了
    private TestEnum(int ordinal, String color) {
        this.ordinal = ordinal;
        this.color = color;
    }

    //我们自己写的枚举类当中 构造方法默认是私有的（private可以省略）
//    private TestEnum() {
//
//    }

    public static void main(String[] args) {
        //values获取所有枚举对象并存放数组中
        TestEnum[] testEnums = TestEnum.values();
        for (int i = 0; i < testEnums.length; i++) {
            //        ordinal 获取枚举对象的序号
            System.out.println(testEnums[i]+" "+testEnums[i].ordinal());
        }

        System.out.println("===");

        //  valueOf  将字符串转换成枚举类型
        TestEnum testEnum = TestEnum.valueOf("RED");
        System.out.println(testEnum);

        System.out.println(RED.compareTo(WHITE));
    }

    public static void main1(String[] args) {
        TestEnum testEnum = TestEnum.RED;
        //枚举类型可以作为Switch的参数
        switch (testEnum) {
            case RED:
                System.out.println("RED");
                break;
            case WHITE:
                System.out.println("WHITE");
                break;
            case GREEN:
                System.out.println("GREEN");
                break;
            default:
                break;
        }
    }
}
